import { getUserInfo } from '@/services/global'

/**
 * 这种写法上有很多的自由性, 会可能在未来难以维护🤔
 * 这里不建议使用ref生成值, 直接导出ref的值会被解构
 * 在使用时，需要使用 storeToRefs 包裹 如下
 * const globalStore = useGlobalStore()
 * const { userInfo } = storeToRefs(globalStore)
 */

export const useGlobalStore = defineStore('globalState', () => {
    /**
     * 用户信息相关
     */
    const userInfo = reactive({ name: 'test1' })
    const getAsyncUserInfo = async () => {
        const data = await getUserInfo()
        Object.assign(userInfo, data)
    }

    /**
     * 是否隐藏菜单
     */
    const hideMenus = ref(false)
    const resetHideMenus = (bool: boolean) => {
        hideMenus.value = bool
    }

    return { userInfo, hideMenus, getAsyncUserInfo, resetHideMenus }
})
